package com.shop.cereshop.app.dao.wallet;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.shop.cereshop.commons.domain.wallet.Recharge;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 充值记录DAO接口
 * @author wang.yao
 * @date 2025-08-26
 */
@Mapper
public interface RechargeDAO extends BaseMapper<Recharge> {

    /**
     * 根据用户ID查询充值记录
     * @param buyerUserId 用户ID
     * @param limit 限制条数
     * @return 充值记录列表
     */
    List<Recharge> selectByUserId(@Param("buyerUserId") Long buyerUserId, @Param("limit") Integer limit);

    /**
     * 根据充值单号查询充值记录
     * @param rechargeNo 充值单号
     * @return 充值记录
     */
    Recharge selectByRechargeNo(@Param("rechargeNo") String rechargeNo);

    /**
     * 更新充值状态
     * @param rechargeNo 充值单号
     * @param paymentStatus 支付状态
     * @param thirdPartyOrderNo 第三方订单号
     * @param paymentTime 支付时间
     * @param updateTime 更新时间
     * @return 影响行数
     */
    int updatePaymentStatus(@Param("rechargeNo") String rechargeNo,
                           @Param("paymentStatus") Integer paymentStatus,
                           @Param("thirdPartyOrderNo") String thirdPartyOrderNo,
                           @Param("paymentTime") String paymentTime,
                           @Param("updateTime") String updateTime);
}
